//package com.zhanghe.study.java8.ddl1;
//
//import com.sun.jna.Memory;
//import com.sun.jna.Pointer;
//import com.sun.jna.Structure;
//import com.sun.jna.ptr.IntByReference;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//
//// 假设你有一个 TCLineInfo 结构体
//class TCLineInfo extends Structure {
//    public int field1; // 你的字段
//    // 其他字段...
//
//    public TCLineInfo() {
//        super();
//    }
//
//    public TCLineInfo(Pointer p) {
//        super(p);
//        read();
//    }
//
//    @Override
//    protected List<String> getFieldOrder() {
//        return Arrays.asList("field1"); // 你的字段顺序
//    }
//}
//
//public class Main {
//    public static void main(String[] args) {
//        // 加载库
//        DetTclineLibrary lib = DetTclineLibrary.INSTANCE;
//
//        // 初始化数据
//        int detid = 0;
//        byte[] inJpg = { /* 你的输入JPEG数据 */ };
//        List<TCLineInfo> tclineInfos = new ArrayList<>();
//        byte[] outJpg = new byte[0];
//
//        // 创建检测器
//        int createResult = lib.CreateDetector();
//        System.out.println("CreateDetector result: " + createResult);
//
//        if (createResult != 0) {
//            return;
//        }
//
//        // 准备输入数据
//        Memory inJpgMem = new Memory(inJpg.length);
//        inJpgMem.write(0, inJpg, 0, inJpg.length);
//
//        IntByReference tclineInfosSizeRef = new IntByReference(tclineInfos.size());
//        Pointer tclineInfosPtr = null; // 一开始为空，后面根据需要分配
//
//        IntByReference outJpgSizeRef = new IntByReference(outJpg.length);
//        Pointer outJpgPtr = null; // 一开始为空，后面根据需要分配
//
//        // 调用 DetTCLine 方法
//        int detResult = lib.DetTCLine(detid, inJpgMem, tclineInfosSizeRef, tclineInfosPtr, outJpgSizeRef, outJpgPtr);
//        System.out.println("DetTCLine result: " + detResult);
//
//        // 读取输出数据
//        int tclineInfosSize = tclineInfosSizeRef.getValue();
//        if (tclineInfosSize > 0) {
//            tclineInfosPtr = new Memory(tclineInfosSize * TCLineInfo.SIZE);
//            for (int i = 0; i < tclineInfosSize; i++) {
//                TCLineInfo info = new TCLineInfo(tclineInfosPtr.share(i * TCLineInfo.SIZE));
//                tclineInfos.add(info);
//            }
//        }
//
//        int outJpgSize = outJpgSizeRef.getValue();
//        if (outJpgSize > 0) {
//            outJpgPtr = new Memory(outJpgSize);
//            outJpg = outJpgPtr.getByteArray(0, outJpgSize);
//        }
//
//        // 释放检测器
//        int releaseResult = lib.ReleaseDetector(detid);
//        System.out.println("ReleaseDetector result: " + releaseResult);
//
//        // 输出结果
//        System.out.println("tclineInfos: " + tclineInfos);
//        System.out.println("outJpg: " + outJpg);
//    }
//}